1. Technical Field
This disclosure relates to electronic design automation (EDA). More specifically, this disclosure relates to numerical area recovery.
2. Related Art
The goal of circuit synthesis is to convert a high-level description of a circuit design into an implementation that meets a set of timing constraints, and at the same time optionally optimizes one or more metrics, such as area, leakage power, etc.
Some circuit synthesis approaches create an initial circuit design at a given abstraction level (e.g., a logical or physical design). Next, a cell is identified in the circuit design for optimization based on the metrics that are desired to be optimized. An optimal size for the identified cell is then determined by iteratively replacing the identified cell with functionally equivalent cells that have different sizes (this optimization process is also referred to as “sizing the cell,” “sizing the gate,” etc.). For each replacement cell size that is tried, the circuit synthesis approach updates timing information, and rejects cell sizes for which one or more timing constraints are violated. Specifically, during area recovery, conventional circuit synthesis tools use an iterative trial-and-error approach to downsize cells without degrading one or more timing metrics. The iterative optimization process typically terminates after the optimization process has executed for a certain number of iterations or for a certain amount of time. One aspect that further makes this process computationally expensive is that modern technology libraries have many sizes associated with each gate type with varying driving capability and/or multiple threshold voltages.
Unfortunately, such iterative trial-and-error based circuit synthesis approaches either take too long to complete and/or produce poor quality results for large circuit designs in which timing constraints are checked across many process corners and modes.
A circuit synthesis approach that is different from iterative trial-and-error approaches is described in Ivan Sutherland, Robert F. Sproull, and David Harris, Logical Effort: Designing Fast CMOS Circuits, Morgan Kaufmann, 1999 (hereinafter “Sutherland”). The cell delay can be represented using the following expression:d=R·Co+p,  (1)where, R is the output resistance of the cell, Co is the output loading, and p is the parasitic delay of the cell. Equation (1) can then be rewritten as:
                              d          =                                                    (                                  R                  ·                                      C                    i                                                  )                            ·                              (                                                      C                    0                                                        C                    i                                                  )                                      +            p                          ,                            (        2        )            where, Ci is the input capacitance presented by the cell at one of its input terminals.
The circuit synthesis approach described in Sutherland uses the following linear cell delay model:d=g·h+p,  (3)where, g represents the logical effort, h represents the electrical effort, and p represents the parasitic delay of the cell. The logical effort captures the effect of the cell's topology on its ability to produce output current. The logical effort is independent of the size of the transistors in the circuit. The electrical effort describes how the electrical environment of the cell affects performance, and how the size of the transistors in the cell determines its load-driving capability. The parasitic delay is a form of delay overhead that accompanies any gate. The logical effort g and the parasitic delay p can be normalized, e.g., they can be normalized with respect to the logical effort and parasitic delay values, respectively, of a reference inverter.
Comparing Equations (2) and (3) we note that the first term (R·Ci) represents the logical effort g, and the second term
  (            C      0              C      i        )represents the electrical effort h.
The delay model that is used by a circuit synthesis approach must be accurate, i.e., it must accurately model the actual cell delays. If the delay model is inaccurate, the circuit implementation produced by the circuit synthesis approach will likely contain many timing violations. In the above-mentioned work by Sutherland et al., the authors state that the linear delay model is approximate, i.e., it does not accurately model the actual cell delays.
One of the important problems in circuit synthesis is called the minim-area-under-delay-constraints problem. A technique for solving this problem involves a process called area recovery in which the circuit synthesis tool attempts to downsize gates (thereby reducing the area occupied by the gates) without violating any delay constraints. What are needed are systems and techniques for efficiently and accurately performing area recovery.